commit 7366988f033d29f2b2e2e68fedb8827ba09a2cc1
Author: Daniel Kolesa <daniel@octaforge.org>
Date:   Wed Jan 5 17:50:07 2022 +0100

    reproducible build

diff --git a/Source/WebCore/bindings/scripts/CodeGenerator.pm b/Source/WebCore/bindings/scripts/CodeGenerator.pm
index 1e95784b..eb642a52 100644
--- a/Source/WebCore/bindings/scripts/CodeGenerator.pm
+++ b/Source/WebCore/bindings/scripts/CodeGenerator.pm
@@ -324,7 +324,7 @@ sub MergeExtendedAttributesFromSupplemental
 {
     my ($object, $supplementalExtendedAttributes, $property, $context) = @_;
 
-    foreach my $extendedAttributeName (keys %{$supplementalExtendedAttributes}) {
+    foreach my $extendedAttributeName (sort keys %{$supplementalExtendedAttributes}) {
         my $isAllowed = 0;
         for my $contextAllowed (@{$idlAttributes->{$extendedAttributeName}->{"contextsAllowed"}}) {
             if ($contextAllowed eq $context) {
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
index 275fce91..8c1534be 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -3217,7 +3217,7 @@ sub GenerateHeader
         } else {
             push(@headerContent, "    static constexpr unsigned StructureFlags = Base::StructureFlags");
         }
-        foreach my $structureFlag (sort (keys %structureFlags)) {
+        foreach my $structureFlag (sort (sort keys %structureFlags)) {
             push(@headerContent, " | " . $structureFlag);
         }
         push(@headerContent, ";\n");
@@ -7515,7 +7515,7 @@ sub WriteData
 
     my @includes = ();
     my %implIncludeConditions = ();
-    foreach my $include (keys %implIncludes) {
+    foreach my $include (sort keys %implIncludes) {
         next if $headerIncludes{$include};
         next if $headerTrailingIncludes{$include};
 
@@ -7555,7 +7555,7 @@ sub WriteData
     $contents = join "", @headerContentHeader;
 
     @includes = ();
-    foreach my $include (keys %headerIncludes) {
+    foreach my $include (sort keys %headerIncludes) {
         $include = "\"$include\"" unless $include =~ /^["<]/; # "
         $include = SubstituteHeader($include);
         push @includes, $include;
@@ -7569,7 +7569,7 @@ sub WriteData
     $contents .= join "", @headerContent;
 
     @includes = ();
-    foreach my $include (keys %headerTrailingIncludes) {
+    foreach my $include (sort keys %headerTrailingIncludes) {
         $include = "\"$include\"" unless $include =~ /^["<]/; # "
         push @includes, $include;
     }
@@ -7642,7 +7642,7 @@ sub GeneratePrototypeDeclaration
     if (%structureFlags) {
         push(@$outputArray, "public:\n");
         push(@$outputArray, "    static constexpr unsigned StructureFlags = Base::StructureFlags");
-        foreach my $structureFlag (sort (keys %structureFlags)) {
+        foreach my $structureFlag (sort (sort keys %structureFlags)) {
             push(@$outputArray, " | " . $structureFlag);
         }
         push(@$outputArray, ";\n");
diff --git a/Source/cmake/tools/scripts/version-stamp.pl b/Source/cmake/tools/scripts/version-stamp.pl
index 888a4502..57ab9b16 100644
--- a/Source/cmake/tools/scripts/version-stamp.pl
+++ b/Source/cmake/tools/scripts/version-stamp.pl
@@ -75,7 +75,7 @@ my $VERSION_FILE = File::Spec->catfile(File::Spec->canonpath($intdir), 'include'
 
 open(VERSION_INFO, '<', $VERSION_FILE) or die "Unable to open $VERSION_FILE: $!\n";
 while (my $line = <VERSION_INFO>) {
-    foreach my $componentKey (keys %components) {
+    foreach my $componentKey (sort keys %components) {
         if ($line !~ m/$componentKey/) {
             next;
         }
